package com.ccys.app.service;



import com.ccys.common.vo.ResponseResultApp;
import com.ccys.db.dto.login.*;
import com.ccys.db.dto.member.ActivatePinCodeDto;
import com.ccys.db.dto.member.GetTwilioTokenDto;
import com.ccys.db.dto.member.RequestPinCodeDto;
import com.ccys.db.dto.member.UpdatePasswordDto;
import com.ccys.db.entity.TblMember;
import com.ccys.db.rely.service.BaseService;


/**
 * 用户表管理
 */
public interface MemberPreAuthenticationService extends BaseService<TblMember> {


       /**
        * @description 登录
        * @date     2024/1/6
        * @author   cloud fly
        */
       Object login(LoginDto dto);

          /**
           * @description 忘记密码
           * @date     2024/1/18
           * @author   cloud fly
           */
    ResponseResultApp forgotPassword(ForgotPasswordDto dto);

       /**
        * @description 重置密码   {
        *   "email": "179019f7-1952-4cae-969a-1fe599a0922e",
        *   "recovery_code": "707455",
        *   "new_password": "12345678"
        * }
        * @date     2024/1/18
        * @author   cloud fly
        */
    ResponseResultApp resetPassword(ResetPasswordDto dto);

       /**
        * @description 病人注册
        * @date     2024/1/19
        * @author   cloud fly
        */
    ResponseResultApp register(RegisterDto dto);

       /**
        * @description 请求一次性校验（短信）
        * @date     2024/1/22
        * @author   cloud fly
        */
    ResponseResultApp requestOTP(RequestOTPDto dto);

       /**
        * @description 激活账号
        * @date     2024/1/22
        * @author   cloud fly
        */
    ResponseResultApp activateAccount(ActivateAccountDto dto);

       /**
        * @description 发送pingcode 邮箱验证码
        * @date     2024/1/24
        * @author   cloud fly
        */
    ResponseResultApp requestPinCode(RequestPinCodeDto dto);

       /**
        * @description 激活pincode
        * @date     2024/1/25
        * @author   cloud fly
        */
    ResponseResultApp activatePinCode(ActivatePinCodeDto dto);

       /**
        * @description 发送pingcode 短信验证码
        * @date     2024/1/25
        * @author   cloud fly
        */
    ResponseResultApp requestPinCodeViaSMS(String key);

       /**
        * @description 修改密码
        * @date     2024/2/2
        * @author   cloud fly
        */
    ResponseResultApp updatePassword(UpdatePasswordDto dto);

       /**
        * @description getTwilioToken
        * @date     2024/2/7
        * @author   cloud fly
        */
    ResponseResultApp getTwilioToken(GetTwilioTokenDto dto);
}